home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / tests / polops.dia.ref < prev    next >
Text File  |  1999-09-16  |  28KB  |  674 lines

  1.  
  2. mode(5)
  3. s=poly(0,'s');
  4. //polynomial operations
  5. p1=1+1.5*s;
  6. if p1<>poly([1 1.5],'s','c') then bugmes();quit;end
  7. p2=p1*p1;
  8. if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  9. if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  10. if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  11. p2=p2*4;
  12. if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  13. if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  14. p2=p2/4;
  15. if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  16. if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end
  17. if norm(coeff(p2-p2))>10*%eps then bugmes();quit;end
  18. //complex
  19. p1=1+1.5*s+0*%i;
  20. if norm(coeff(p1-poly([1 1.5],'s','c')))>10*%eps then bugmes();quit;end
  21. p2=p1*p1;
  22. if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  23. if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  24. if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  25. if norm(coeff((4+0*%i)*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  26. if norm(coeff(p2*(4+0*%i)-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end
  27. p2=p2*4;
  28. if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  29. if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  30. if norm(coeff(p2/(4+0*%i)-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  31. if norm(coeff((4+0*%i)\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  32. p2=p2/4;
  33. if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  34. if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end
  35. if norm(coeff((p2-(1+0*%i))-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end
  36. if norm(coeff(((1+0*%i)-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end
  37. //
  38. if norm(coeff(p2-p2))>10*%eps then bugmes();quit;end
  39. //
  40. //concatenations  extraction
  41. p1=1+1.5*s;p2=1;
  42. p3=[p1 p2];
  43. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  44. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  45. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  46. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  47. p2=p1+4*s**2;
  48. p3=[p1 p2];
  49. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  50. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  51. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  52. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  53. //en colonne
  54. p1=1+1.5*s;p2=1;
  55. p3=[p1;p2];
  56. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  57. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  58. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  59. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  60. p2=p1+4*s**2;
  61. p3=[p1;p2];
  62. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  63. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  64. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  65. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  66. //
  67. p1=1+1.5*s;p2=1+%i;
  68. p3=[p1 p2];
  69. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  70. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  71. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  72. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  73. p2=p1+4*s**2+%i;
  74. p3=[p1 p2];
  75. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  76. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  77. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  78. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  79. //en colonne
  80. p1=1+1.5*s;p2=1+%i;
  81. p3=[p1;p2];
  82. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  83. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  84. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  85. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  86. p2=p1+4*s**2+%i;
  87. p3=[p1;p2];
  88. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  89. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  90. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  91. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  92. // complex reel
  93. //en ligne
  94. p1=1+1.5*s+%i;p2=1;
  95. p3=[p1 p2];
  96. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  97. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  98. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  99. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  100. p2=p1+4*s**2;
  101. p3=[p1 p2];
  102. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  103. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  104. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  105. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  106. //en colonne
  107. p1=1+1.5*s+%i;p2=1;
  108. p3=[p1;p2];
  109. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  110. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  111. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  112. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  113. p2=p1+4*s**2;
  114. p3=[p1;p2];
  115. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  116. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  117. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  118. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  119. //complex complex
  120. //en ligne
  121. p1=1+1.5*s+%i;p2=1+%i;
  122. p3=[p1 p2];
  123. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  124. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  125. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  126. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  127. p2=p1+4*s**2+%i;
  128. p3=[p1 p2];
  129. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  130. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  131. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  132. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end
  133. //en colonne
  134. p1=1+1.5*s+%i;p2=1+%i;
  135. p3=[p1;p2];
  136. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  137. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  138. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  139. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  140. p2=p1+4*s**2+%i;
  141. p3=[p1;p2];
  142. if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end
  143. if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end
  144. if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end
  145. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end
  146. //
  147. //                real real
  148. //
  149. p1=[1+1.5*s;s**2];
  150. //
  151. if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end
  152. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  153. if norm(coeff((-p1')+p1'))>10*%eps then bugmes();quit;end
  154. //
  155. x=[1+s**3; 4];
  156. p3=p1(1)*x(1)+p1(2)*x(2);
  157. if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end
  158. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  159. if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end
  160. //
  161. x=[1.5;1/3];
  162. p3=p1(1)*x(1)+p1(2)*x(2);
  163. if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end
  164. if norm(coeff(x'*p1-p3))>10*%eps then bugmes();quit;end
  165. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  166. if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end
  167. if norm(coeff(x*p1'-p3'))>10*%eps then bugmes();quit;end
  168. //
  169. x=4;
  170. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  171. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  172. if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  173. if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  174. //
  175. x=[1+s**3; 4];
  176. p3=[p1(1)*x(1);p1(2)*x(2)];
  177. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  178. x=[1.5;1/3];
  179. p3=[p1(1)*x(1);p1(2)*x(2)];
  180. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  181. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  182. x=[1+s**3,4];
  183. p3=[p1(1)*x(1),p1(2)*x(2)];
  184. if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end
  185. x=[1.5,1/3];
  186. p3=[p1(1)*x(1),p1(2)*x(2)];
  187. if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end
  188. if norm(coeff(x.*p1'-p3))>10*%eps then bugmes();quit;end
  189. // matrices
  190. p1=[1+1.5*s,s**2, 0;1 s s+1];
  191. //
  192. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  193. //
  194. x=[1,s;-1,2*s;2,0];
  195. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  196.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  197.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  198.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  199. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  200. //
  201. x=[1 1.5;2 1/3;sqrt(7) 8];
  202. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  203.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  204.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  205.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  206. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  207. //
  208. x=5;
  209. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  210.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  211. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  212. if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end
  213. //
  214. x=[1+s**3, 4,-s;0,s+1,10*s**4];
  215. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  216.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  217. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  218. x=[1 1.5;2 1/3;sqrt(7) 8]';
  219. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  220.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  221. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  222. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  223. //
  224. //               real    complex
  225. //
  226. p1=[1+1.5*s;s**2];
  227. //
  228. if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end
  229. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  230. if norm(coeff((-p1')+p1'))>10*%eps then bugmes();quit;end
  231. //
  232. x=[1+s**3; 4+%i];
  233. p3=p1(1)*x(1)+p1(2)*x(2);
  234. if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end
  235. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  236. if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end
  237. //
  238. x=[1.5+%i;1/3];
  239. p3=p1(1)*x(1)+p1(2)*x(2);
  240. if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end
  241. if norm(coeff(conj(x')*p1-p3))>10*%eps then bugmes();quit;end
  242. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  243. if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end
  244. if norm(coeff(x*p1'-conj(p3')))>10*%eps then bugmes();quit;end
  245. //
  246. x=4+%i;
  247. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  248. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  249. if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  250. if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  251. //
  252. x=[1+s**3; 4-3*%i];
  253. p3=[p1(1)*x(1);p1(2)*x(2)];
  254. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  255. x=[1.5+%i/5;1/3];
  256. p3=[p1(1)*x(1);p1(2)*x(2)];
  257. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  258. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  259. x=[1+s**3,4-%i];
  260. p3=[p1(1)*x(1),p1(2)*x(2)];
  261. if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end
  262. x=[1.5,1/3-3*%i];
  263. p3=[p1(1)*x(1),p1(2)*x(2)];
  264. if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end
  265. if norm(coeff(x.*p1'-p3))>10*%eps then bugmes();quit;end
  266. // matrices
  267. p1=[1+1.5*s,s**2, 0;1 s s+1];
  268. //
  269. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  270. //
  271. x=[1,s+%i ;-1,2*s;2,0];
  272. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  273.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  274.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  275.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  276. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  277. //
  278. x=[1 1.5;2 1/3;%i-sqrt(7) 8];
  279. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  280.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  281.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  282.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  283. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  284. //
  285. x=5-2*%i;
  286. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  287.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  288. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  289. if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end
  290. //
  291. x=[1+s**3, 4-3*%i,-s;0,s+1,10*s**4];
  292. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  293.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  294. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  295. x=[1 1.5;2-%i/7, 1/3;sqrt(7) 8]';
  296. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  297.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  298. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  299. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  300. //
  301. //                complex real
  302. //
  303. p1=[1+1.5*s;s**2+%i];
  304. //
  305. if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end
  306. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  307. if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then bugmes();quit;end
  308. //
  309. x=[1+s**3; 4];
  310. p3=p1(1)*x(1)+p1(2)*x(2);
  311. if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end
  312. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  313. if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end
  314. //
  315. x=[1.5;1/3];
  316. p3=p1(1)*x(1)+p1(2)*x(2);
  317. if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end
  318. if norm(coeff(x'*p1-p3))>10*%eps then bugmes();quit;end
  319. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  320. if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end
  321. if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then bugmes();quit;end
  322. //
  323. x=4;
  324. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  325. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  326. if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  327. if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  328. //
  329. x=[1+s**3; 4];
  330. p3=[p1(1)*x(1);p1(2)*x(2)];
  331. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  332. x=[1.5;1/3];
  333. p3=[p1(1)*x(1);p1(2)*x(2)];
  334. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  335. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  336. x=[1+s**3,4];
  337. p3=[p1(1)*x(1),p1(2)*x(2)];
  338. if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end
  339. x=[1.5,1/3];
  340. p3=[p1(1)*x(1),p1(2)*x(2)];
  341. if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end
  342. if norm(coeff(x.*conj(p1')-p3))>10*%eps then bugmes();quit;end
  343. //matrices
  344. p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3];
  345. //
  346. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  347. //
  348. x=[1,s ;-1,2*s;2,0];
  349. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  350.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  351.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  352.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  353. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  354. //
  355. x=[1 1.5;2 1/3;sqrt(7) 8];
  356. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  357.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  358.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  359.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  360. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  361. //
  362. x=5;
  363. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  364.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  365. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  366. if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end
  367. //
  368. x=[1+s**3,4,-s;0,s+1,10*s**4];
  369. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  370.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  371. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  372. x=[1 1.5;2, 1/3;sqrt(7) 8]';
  373. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  374.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  375. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  376. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  377. //
  378. //                complex complex
  379. //
  380. p1=[1+1.5*s;s**2+%i];
  381. //
  382. if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end
  383. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  384. if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then bugmes();quit;end
  385. //
  386. x=[1+s**3; 4-%i];
  387. p3=p1(1)*x(1)+p1(2)*x(2);
  388. if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end
  389. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  390. if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end
  391. //
  392. x=[1.5+%i/5;1/3];
  393. p3=p1(1)*x(1)+p1(2)*x(2);
  394. if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end
  395. if norm(coeff(conj(x')*p1-p3))>10*%eps then bugmes();quit;end
  396. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  397. if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end
  398. if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then bugmes();quit;end
  399. //produit d'un vecteur de polynome par un scalaire
  400. x=4+%i/7;
  401. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  402. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end
  403. if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  404. if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end
  405. //
  406. x=[1+s**3; 4-%i];
  407. p3=[p1(1)*x(1);p1(2)*x(2)];
  408. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  409. x=[1.5+2*%i;1/3];
  410. p3=[p1(1)*x(1);p1(2)*x(2)];
  411. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  412. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  413. x=[1+s**3+%i,4-%i];
  414. p3=[p1(1)*x(1),p1(2)*x(2)];
  415. if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end
  416. x=[1.5+3*%i,1/3];
  417. p3=[p1(1)*x(1),p1(2)*x(2)];
  418. if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end
  419. if norm(coeff(x.*conj(p1')-p3))>10*%eps then bugmes();quit;end
  420. //matrices
  421. p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3];
  422. //
  423. if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end
  424. //
  425. x=[1-%i,s ;-1,2*s;2,0+%i*s**4];
  426. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  427.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  428.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  429.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  430. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  431. //
  432. x=[1 1.5+5*%i;2 1/3;%i-sqrt(7) 8];
  433. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  434.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  435.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  436.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  437. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  438. //
  439. x=5+8*%i;
  440. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  441.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  442. if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end
  443. if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end
  444. //
  445. x=[1+s**3,4+10*%i,-s;0,s+1,10*s**4+%i*s**3];
  446. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  447.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  448. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  449. x=[1 1.5;2, 1/3;sqrt(7)/%i, 8]';
  450. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  451.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  452. if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end
  453. if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end
  454. //
  455. //
  456. //
  457. //        real real
  458. z=poly(0,'z');p1=[1+3*z;z;2*z;z*4];p2=[0*z 1+z z-1 -z];p3=[p1 p2'];
  459. pp1=p1;pp2=p2;pp3=p3;
  460. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end
  461. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end
  462. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 pp2'] then bugmes();quit;end
  463. pp1(1:4)=pp2';if pp1<> pp2' then bugmes();quit;end
  464. pp1((1:4)')=pp2';if pp1<> pp2' then bugmes();quit;end
  465. pp1=p1;pp2=p2;
  466. pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end
  467. pp2(7)=+z**3;,if pp2 <> [p2,0,0,+z**3;] then bugmes();quit;end
  468. pp1=p1;pp2=p2;
  469. pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end
  470. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end
  471. pp1=p1;pp2=p2;
  472. pp1(:)=p2';if pp1 <> p2' then bugmes();quit;end
  473. pp2(:)=p1';if pp2 <> p1' then bugmes();quit;end
  474. pp1=p1;pp2=p2;
  475. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end
  476. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end
  477. pp3=p3;
  478. pp3(1:4,1)=p2';if pp3 <> [p2' p2'] then bugmes();quit;end
  479. pp3(1:4,2)=p1;if pp3 <> [p2' p1] then bugmes();quit;end
  480. pp3=p3;
  481. pp3(:,1)=p2';if pp3 <> [p2' p2'] then bugmes();quit;end
  482. pp3(:,2)=p1;if pp3 <> [p2' p1] then bugmes();quit;end
  483. pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end
  484. pp3=p3;
  485. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end
  486. pp3=p3;
  487. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end
  488. //
  489. p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')];
  490. pp1=p1;pp2=p2;pp3=p3;
  491. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end
  492. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end
  493. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end
  494. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  495. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  496. pp1=p1;pp2=p2;
  497. pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end
  498. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3;] then bugmes();quit;end
  499. pp1=p1;pp2=p2;
  500. pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end
  501. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end
  502. pp1=p1;pp2=p2;
  503. pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end
  504. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end
  505. pp1=p1;pp2=p2;
  506. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end
  507. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end
  508. pp3=p3;
  509. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  510. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  511. pp3=p3;
  512. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  513. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  514. pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end
  515. pp3=p3;
  516. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end
  517. pp3=p3;
  518. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end
  519. //
  520. p1=[1+3*s;s-%i;2*s;s*4+3*%i*s**2];p2=[0*s 1+s s-1 -s];p3=[p1 p2'];
  521. pp1=p1;pp2=p2;pp3=p3;
  522. pp1(2)=pp2(1);if norm(coeff(pp1(2)-pp2(1)))>10*%eps then bugmes();quit;end
  523. pp2(3)=pp1(4);if norm(coeff(pp2(3)-pp1(4)))>10*%eps then bugmes();quit;end
  524. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end
  525. pp1(1:4)=pp2';if pp1<> pp2' then bugmes();quit;end
  526. pp1((1:4)')=pp2';if pp1<> pp2' then bugmes();quit;end
  527. pp1=p1;pp2=p2;
  528. pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end
  529. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end
  530. pp1=p1;pp2=p2;
  531. pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end
  532. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end
  533. pp1=p1;pp2=p2;
  534. pp1(:)=p2';if norm(coeff(pp1-p2'))>10*%eps then bugmes();quit;end
  535. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end
  536. pp1=p1;pp2=p2;
  537. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end
  538. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end
  539. pp3=p3;
  540. pp3(1:4,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then bugmes();quit;end
  541. pp3(1:4,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then bugmes();quit;end
  542. pp3=p3;
  543. pp3(:,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then bugmes();quit;end
  544. pp3(:,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then bugmes();quit;end
  545. pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end
  546. pp3=p3;
  547. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end
  548. pp3=p3;
  549. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end
  550. p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')];
  551. pp1=p1;pp2=p2;pp3=p3;
  552. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end
  553. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end
  554. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end
  555. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  556. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  557. pp1=p1;pp2=p2;
  558. pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end
  559. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end
  560. pp1=p1;pp2=p2;
  561. pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end
  562. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end
  563. pp1=p1;pp2=p2;
  564. pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end
  565. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end
  566. pp1=p1;pp2=p2;
  567. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end
  568. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end
  569. pp3=p3;
  570. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  571. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  572. pp3=p3;
  573. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  574. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  575. pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end
  576. pp3=p3;
  577. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end
  578. pp3=p3;
  579. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end
  580. //
  581. p1=[1+3*s;s+%i*s**3;2*s;s*4+%i];p2=[0*s-2.5*%i,1+s,s-1+3*%i,-s];
  582. p3=[p1 conj(p2')];
  583. pp1=p1;pp2=p2;pp3=p3;
  584. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end
  585. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end
  586. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end
  587. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  588. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end
  589. pp1=p1;pp2=p2;
  590. pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end
  591. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end
  592. pp1=p1;pp2=p2;
  593. pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end
  594. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end
  595. pp1=p1;pp2=p2;
  596. pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end
  597. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end
  598. pp1=p1;pp2=p2;
  599. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end
  600. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end
  601. pp3=p3;
  602. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  603. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  604. pp3=p3;
  605. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end
  606. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end
  607. pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end
  608. pp3=p3;
  609. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end
  610. pp3=p3;
  611. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end
  612. //
  613. //
  614. //real case
  615. p11=1+3*s;p12=s;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14];
  616. p21=0*s;p22=1+s;p23=s-1;p24=-s;p2=[p21 p22 p23 p24];
  617. p3=[p1 p2'];
  618. if p1(1) <> p11 then bugmes();quit;end
  619. if p1(4) <> p14 then bugmes();quit;end
  620. if p2(2) <> p22 then bugmes();quit;end
  621. if p2(3) <> p23 then bugmes();quit;end
  622. if p1([1 3]) <> [p11;p13] then bugmes();quit;end
  623. if p1([1;3]) <> p1([1 3]) then bugmes();quit;end
  624. if p2([2 4]) <> [p22 p24] then bugmes();quit;end
  625. if p2([2;4]) <> p2([2 4]) then bugmes();quit;end
  626. if p1(:) <> p1 then bugmes();quit;end
  627. if p2(:) <> p2' then bugmes();quit;end
  628. if p3(1) <> p1(1) then bugmes();quit;end
  629. if p3(8) <> p2(4) then bugmes();quit;end
  630. if p3(3) <> p1(3) then bugmes();quit;end
  631. if p3(5) <> p2(1) then bugmes();quit;end
  632. if p3(1,1) <> p1(1) then bugmes();quit;end
  633. if p3(4,2) <> p2(4) then bugmes();quit;end
  634. if p3(3,2) <> p2(3) then bugmes();quit;end
  635. if p3([1 3],1) <> p1([1 3]) then bugmes();quit;end
  636. if p3([1;3],1) <> p1([1 3]) then bugmes();quit;end
  637. if p3([2 4],[2 1]) <> [p2([2 4])' p1([2 4])] then bugmes();quit;end
  638. if p3(:,1) <> p1 then bugmes();quit;end
  639. if p3(:,2) <> p2' then bugmes();quit;end
  640. if p3(1,:) <> [p1(1) p2(1)] then bugmes();quit;end
  641. if p3([1 4],:) <> [p1([1 4]) p2([1 4])'] then bugmes();quit;end
  642. if p3(:,:) <> p3 then bugmes();quit;end
  643. //
  644. p11=1+3*s+%i;p12=s+%i*s**3;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14];
  645. p21=%i+0*s;p22=1+s;p23=s-1;p24=-s+%i*s**2;p2=[p21 p22 p23 p24];
  646. p3=[p1 conj(p2')];
  647. if p1(1) <> p11 then bugmes();quit;end
  648. if norm(coeff(p1(4)-p14))>10*%eps then bugmes();quit;end
  649. if norm(coeff(p2(2)- p22 ))>10*%eps then bugmes();quit;end
  650. if norm(coeff(p2(3)- p23 ))>10*%eps then bugmes();quit;end
  651. if norm(coeff(p1([1 3])- [p11;p13] ))>10*%eps then bugmes();quit;end
  652. if norm(coeff(p1([1;3])- p1([1 3]) ))>10*%eps then bugmes();quit;end
  653. if norm(coeff(p2([2 4])- [p22 p24] ))>10*%eps then bugmes();quit;end
  654. if norm(coeff(p2([2;4])- p2([2 4]) ))>10*%eps then bugmes();quit;end
  655. if norm(coeff(p1(:)- p1 ))>10*%eps then bugmes();quit;end
  656. if norm(coeff(p2(:)- conj(p2)' ))>10*%eps then bugmes();quit;end
  657. if norm(coeff(p3(1)- p1(1) ))>10*%eps then bugmes();quit;end
  658. if norm(coeff(p3(8)- p2(4) ))>10*%eps then bugmes();quit;end
  659. if norm(coeff(p3(3)- p1(3) ))>10*%eps then bugmes();quit;end
  660. if norm(coeff(p3(5)- p2(1) ))>10*%eps then bugmes();quit;end
  661. if norm(coeff(p3(1,1)- p1(1) ))>10*%eps then bugmes();quit;end
  662. if norm(coeff(p3(4,2)- p2(4) ))>10*%eps then bugmes();quit;end
  663. if norm(coeff(p3(3,2)- p2(3) ))>10*%eps then bugmes();quit;end
  664. if norm(coeff(p3([1 3],1)- p1([1 3]) ))>10*%eps then bugmes();quit;end
  665. if norm(coeff(p3([1;3],1)- p1([1 3]) ))>10*%eps then bugmes();quit;end
  666. if norm(coeff(p3([2 4],[2 1])-[conj(p2([2 4])') p1([2 4])]))>10*%eps
  667.  then bugmes();quit;end
  668. if norm(coeff(p3(:,1)- p1 ))>10*%eps then bugmes();quit;end
  669. if norm(coeff(p3(:,2)- conj(p2') ))>10*%eps then bugmes();quit;end
  670. if norm(coeff(p3(1,:)- [p1(1) p2(1)] ))>10*%eps then bugmes();quit;end
  671. if norm(coeff(p3([1 4],:)- [p1([1 4]) conj(p2([1 4])')] ))>10*%eps
  672.   then bugmes();quit;end
  673. if norm(coeff(p3(:,:)- p3 ))>10*%eps then bugmes();quit;end
  674.